Some computer networking environments can include routers and switches that forward data and information between different computers and networks. Specifically, within a network router or an Asynchronous Transfer Mode (ATM) switch there are typically many control channels which are used for signaling, routing, along with interprocess communication (IPC). Usually, these control plane messages are exchanged between multiple application sources from multiple line cards to a common destination such as the active control card or processor card. These multiple application sources commonly exchange control plane messages over different control channels destined towards the control card (or processor card). Typically, the control plane messages arriving from these different control channels are stored in a common arrival queue (or several priority-based queues) of the control card. As such, these messages are subsequently drained from the queue (or queues) by dispatching them to the appropriate control applications.
However, there are disadvantages associated with this control plane queuing technique. For example, in the case where multiple source channels are funneled to a common destination queue of the control card (or processor card), and there is message congestion caused by a defective source, the other sources utilizing that queue can be adversely affected. Note that a message overflow condition can be caused by various reasons, including faults such as a misconfiguration of a signaling source; a malfunctioning application that is over congesting the control channel; a corrupt or defective hardware source; and the like.
Currently, one of the conventional techniques for trying to resolve this issue is to throttle (or restrict) the source such that it does not overload the destination. However, this conventional technique does not scale well from the software side of the router or switch. For example, multiple source applications sharing a common IPC pipe are to somehow throttle themselves independently in an efficient way such that bandwidth is not wasted.
Another conventional technique is to modify the receiving hardware of the active control card (or processor card). For example, the receiving hardware can be modified to support some type of per source per channel traffic queuing and shaping to ensure that traffic overflow from one source does not affect other sources. However, this solution is typically very expensive, and again does not scale well to address this problem. For example, given five source channels per card and 30 slots in a router or switch, that results in 150 queues just for platform control traffic. In reality, there are usually a limited number of input queues that can be used to service control traffic.
The invention may address one or more of the above issues.